PHP spl_autoload_register
全部标签 我写了一个Laravel包,我想提供给大家下载。但是,似乎我必须在添加包后手动执行composerdump-autoload。是否可以在安装后自动执行composerdump-autoload,以便composer自动加载我项目中的所有新类? 最佳答案 是的,您可以将它添加到composer.json的“post-update”脚本部分。然后它将在项目的每次更新后执行。您也可以将它添加到“安装后”部分,这样该命令将在安装后直接调用。composer.json的简短摘录:"scripts":{"post-root-package-in
我想使用phpExcel,但在运行脚本时出现此错误:Fatalerror:Uncaughtexception'PHPExcel_Exception'withmessage'MultibytefunctionoverloadinginPHPmustbedisabledforstringfunctions(2).'inD:\Apache\htdocs\phpExcel\Classes\PHPExcel\Autoloader.php:34Stacktrace:#0D:\Apache\htdocs\phpExcel\Classes\PHPExcel.php(32):require()#1D:\
我正在尝试用自定义函数替换内置的phpshutdown_function。它工作得很好,但是,它仍然在我的新错误消息上方输出原始错误(内置错误)。有什么想法吗? 最佳答案 正如评论中已经提到的,register_shutdown_function的使用不会覆盖内置的错误处理(同样set_error_handler也不会)。如果您不想看到原始消息,请在您的php.ini中使用display_errors=0禁用它们的输出。或者在您的脚本中使用ini_set('display_errors',0);即时运行。
我在项目中使用github中的自定义存储库,其中包含我的仪器集。该项目在/vendor目录中正确导入了包,但我无法使用任何类,因为它没有自动加载包的内容。我的包composer.json文件如下所示:{"name":"mynamespace/toolbox","description":"Asdfoobar.","keywords":["mynamespace","toolbox"],"license":"MIT","require":{"php":">=5.4"},"require-dev":{"codeception/codeception":"2.0.2","codeceptio
我开始使用Lumen在4月发布时。从5.0版开始,我已经遇到了同样的问题并找到了解决方案(seehere)。有几天我开始在Lumen(5.1)中创建一个新项目。但是,应用上面的.htaccess方法,这次问题并没有解决。这是完整的错误:Warning:require_once(path_of_the_project/../vendor/autoload.php):failedtoopenstream:Nosuchfileordirectoryinpath_of_the_project\bootstrap\app.phponline3Fatalerror:require_once():F
我有一个包含多个模块的项目。每个模块在其自身内部使用Composer,并且大部分独立于其他模块。然而,一些模块共享具有不同版本的依赖项。这些依赖项大部分是向后兼容的,并使用语义版本控制。我想确保具有最高语义版本的依赖项优先。这将允许所有模块共享相同的依赖关系,并且这些依赖关系的向后兼容性将确保没有任何中断。我的计划是通过控制我在各个自动加载器上调用require_once的顺序来实现这一点。下面的代码是一个例子,它是在实践中生成的。require_once(__DIR__.'/moduleA/vendor/autoload.php');require_once(__DIR__.'/mo
我正在尝试使用SPL自动加载功能,似乎缺少一些重要的东西,因为我目前无法让它工作。这是我目前正在使用的片段://ROOT_DIRECTORYtranslatesto/home/someuser/public_html/subdomains/testdefine('ROOT_DIRECTORY',realpath(dirname(__FILE__)));define('INCLUDE_DIRECTORY',ROOT_DIRECTORY.'/includes/classes/');set_include_path(get_include_path().PATH_SEPARATOR.INCL
我一直在阅读关于spl_autoload_register函数作为require、require_once、include和&包含一次。尽管有很多关于如何实现这一点的讨论,但文档并不太详细,也没有解释它与原始方法相比有何好处。引用:http://php.net/manual/en/function.spl-autoload-register.php我想知道spl_autoload_register是如何工作的?使用spl_autoload_register时有性能差异吗?它如何处理交叉链接类中的许多require语句(超过20个)?(这不会仍然导致重复要求吗?)
经过一些研究,我无法找到解决我的问题的方法。我正在使用一个API,它是我通过composer下载的命名空间。API具有依赖性,我允许Composer为我管理和自动加载。除此之外,我还有大约10个类,它们是我使用php的spl_autoload_register自动加载的。最近,我开始混合类(class)以完成项目的一部分,但整个事情都变得一团糟。我的自定义类不能使用Composer类,反之亦然。有没有一种方法可以用来自动加载位于两个单独的文件夹中并使用两个单独的外加载程序加载的类。这是我目前使用的代码。vender/autoload.php与典型的Composer自动加载器没有什么不同
当从命令行(通过Ctrl+c)或使用kill命令终止cron进程时,是否可以调用函数?我已经尝试过register_shutdown_function(),但它似乎并没有在脚本被杀死时被调用,而是在脚本正常结束时被调用。我正在尝试将结果记录到文件中,并在cron实例自动终止(即运行时间过长)时更新数据库值。 最佳答案 根据commentinthemanualonregister_shutdown_function(),这可以通过以下方式完成:WhenusingCLI(andperhapscommandlinewithoutCLI-I